package com.itheima.config;

import com.itheima.properties.AliyunOSSProperties;
import com.itheima.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author Waker
 * @description: 配置类，用于创建AliOSSUtil工具类对象
 * @create 2025-09-02-9:19
 */
@Slf4j
@Configuration
public class OSSConfiguration {
    //声明Bean
    @Bean
    @ConditionalOnMissingBean //条件化创建 Bean，当 Spring 容器中不存在 AliOssUtil 类型的 Bean 时，才会执行该方法并创建一个新的 AliOssUtil 实例。这避免了重复创建相同类型的 Bean，确保容器中只有一个实例
    public AliOssUtil aliOssUtil(AliyunOSSProperties aliyunOSSProperties){
        log.info("开始创建阿里云文件上传工具类对象：{}",aliyunOSSProperties);
        return new AliOssUtil(aliyunOSSProperties.getEndpoint(),
                aliyunOSSProperties.getAccessKeyId(),
                aliyunOSSProperties.getAccessKeySecret(),
                aliyunOSSProperties.getBucketName());
    }
}
